import { GoogleGenAI } from "@google/genai";
import { readFileSync } from 'fs'; // 导入 fs 模块的 readFileSync 方法
import { join, dirname } from 'path'; // 导入 path 模块的 join 和 dirname 方法
import { fileURLToPath } from 'url'; // 导入 url 模块的 fileURLToPath 方法，用于获取当前模块的目录

// 获取当前模块的目录路径
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

// 定义 API Key 文件的路径
const API_KEY_FILE = join(__dirname, 'GOOGLE_API_KEY.txt');

let GOOGLE_API_KEY;

try {
  // 同步读取 API Key 文件内容，并去除首尾的空白字符（包括换行符）
  GOOGLE_API_KEY = readFileSync(API_KEY_FILE, 'utf8').trim();
  if (!GOOGLE_API_KEY) {
    throw new Error(`API Key file '${API_KEY_FILE}' is empty.`);
  }
} catch (error) {
  console.error(`Error: Could not read API Key from ${API_KEY_FILE}.`);
  console.error(`Please make sure '${API_API_KEY_FILE}' exists in the same directory as the script and contains your API Key.`);
  console.error(`Original error:`, error.message);
  process.exit(1); // 退出程序
}

const ai = new GoogleGenAI({
  apiKey: GOOGLE_API_KEY, // 使用从文件读取的 API Key
});

async function main() {
  try {
    const response = await ai.models.generateContent({
      model: "gemini-1.5-flash", // 根据您的需求，可以使用 gemini-1.5-flash 或 gemini-pro
      contents: "Explain how AI works in a few words",
      // thinkingConfig 字段在 genai 库中可能不存在或用法不同，可以先移除，如果模型支持再添加
      // config: {
      //   thinkingConfig: {
      //     thinkingBudget: 0, // Disables thinking
      //   },
      // }
    });
    // 确保 response.text 存在，如果 API 调用失败，text 可能不存在
    if (response && response.text) {
      console.log(response.text);
    } else {
      console.error("Error: Gemini API response did not contain text.", response);
    }
  } catch (error) {
    console.error("Error during Gemini API call:", error);
    // 针对具体的 API 错误进行处理，例如权限问题、模型名称错误等
    if (error.status && error.status === 403) {
        console.error("Access denied. Please check your API Key and ensure the Gemini API is enabled for your project.");
    }
  }
}

await main();